package com.luke.system.domain;

import java.util.Date;
import java.util.List;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.luke.common.annotation.Excel;
import com.luke.common.core.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

/**
 * tbDatas对象 tb_datas
 * 
 * @author luke
 * @date 2021-06-23
 */
public class TbDatas extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** $column.columnComment */
    private Long id;

    /** 父ID */
    @Excel(name = "父ID")
    private Long superId;

    /** 数据名称 */
    @Excel(name = "数据名称")
    private String label;

    /** 数据值 */
    @Excel(name = "数据值")
    private String value;

    /** 数据类型:0:字符串 1：时间 3：数字 */
    @Excel(name = "数据类型:0:字符串 1：时间 3：数字")
    private String dataType;

    /** $column.columnComment */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "数据类型:0:字符串 1：时间 3：数字", width = 30, dateFormat = "yyyy-MM-dd")
    private Date submitTime;

    /** 数据值（类型为时间时） */
    @Excel(name = "数据值", readConverterExp = "类=型为时间时")
    private Date valueTime;

    /** 部门ID */
    @Excel(name = "部门ID")
    private Long deptId;

    /** 开始时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "开始时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date startTime;

    /** 结束时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "结束时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date endTime;

    /** 日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date date;

    /** $column.columnComment */
    @Excel(name = "日期")
    private String formField;

    /** 表单类型：input  option */
    @Excel(name = "表单类型：input  option")
    private String formType;

    /** 下标 */
    @Excel(name = "下标")
    private String optionIndex;

    /** 值类型：1,：汉字 2：手机号码 */
    @Excel(name = "值类型：1,：汉字 2：手机号码")
    private Long valueType;

    /** $column.columnComment */
    private String singleSeq;

    /** $column.columnComment */
    @Excel(name = "值类型：1,：汉字 2：手机号码")
    private Long demandId;

    private List<TbDatas> dataList;

    public void setId(Long id)
    {
        this.id = id;
    }

    public Long getId()
    {
        return id;
    }
    public void setSuperId(Long superId)
    {
        this.superId = superId;
    }

    public Long getSuperId()
    {
        return superId;
    }
    public void setLabel(String label)
    {
        this.label = label;
    }

    public String getLabel()
    {
        return label;
    }
    public void setValue(String value)
    {
        this.value = value;
    }

    public String getValue()
    {
        return value;
    }
    public void setDataType(String dataType)
    {
        this.dataType = dataType;
    }

    public String getDataType()
    {
        return dataType;
    }
    public void setSubmitTime(Date submitTime)
    {
        this.submitTime = submitTime;
    }

    public Date getSubmitTime()
    {
        return submitTime;
    }
    public void setValueTime(Date valueTime)
    {
        this.valueTime = valueTime;
    }

    public Date getValueTime()
    {
        return valueTime;
    }
    public void setDeptId(Long deptId)
    {
        this.deptId = deptId;
    }

    public Long getDeptId()
    {
        return deptId;
    }
    public void setStartTime(Date startTime)
    {
        this.startTime = startTime;
    }

    public Date getStartTime()
    {
        return startTime;
    }
    public void setEndTime(Date endTime)
    {
        this.endTime = endTime;
    }

    public Date getEndTime()
    {
        return endTime;
    }
    public void setDate(Date date)
    {
        this.date = date;
    }

    public Date getDate()
    {
        return date;
    }
    public void setFormField(String formField)
    {
        this.formField = formField;
    }

    public String getFormField()
    {
        return formField;
    }
    public void setFormType(String formType)
    {
        this.formType = formType;
    }

    public String getFormType()
    {
        return formType;
    }
    public void setOptionIndex(String optionIndex)
    {
        this.optionIndex = optionIndex;
    }

    public String getOptionIndex()
    {
        return optionIndex;
    }
    public void setValueType(Long valueType)
    {
        this.valueType = valueType;
    }

    public Long getValueType()
    {
        return valueType;
    }
    public void setSingleSeq(String singleSeq)
    {
        this.singleSeq = singleSeq;
    }

    public String getSingleSeq()
    {
        return singleSeq;
    }
    public void setDemandId(Long demandId)
    {
        this.demandId = demandId;
    }

    public Long getDemandId()
    {
        return demandId;
    }

    public List<TbDatas> getDataList() {
        return dataList;
    }

    public void setDataList(List<TbDatas> dataList) {
        this.dataList = dataList;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
                .append("id", getId())
                .append("superId", getSuperId())
                .append("label", getLabel())
                .append("value", getValue())
                .append("dataType", getDataType())
                .append("submitTime", getSubmitTime())
                .append("valueTime", getValueTime())
                .append("deptId", getDeptId())
                .append("startTime", getStartTime())
                .append("endTime", getEndTime())
                .append("date", getDate())
                .append("formField", getFormField())
                .append("formType", getFormType())
                .append("optionIndex", getOptionIndex())
                .append("valueType", getValueType())
                .append("createTime", getCreateTime())
                .append("singleSeq", getSingleSeq())
                .append("demandId", getDemandId())
                .toString();
    }
}
